import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);
import vuexPersist from "vuex-persist";

export default new Vuex.Store({
  state: {
    shopcar: [],
    val: 10,
  },
  mutations: {
    add(state, i) {
      let flag = false;
      //这个flag的true false代表了这个商品存在不存在

      state.shopcar.forEach((item) => {
        if (item._id == i._id) {
          item.num++;
          flag = true;
        }
      });

      if (flag == false) {
        // i.num = 1;
        Vue.set(i, "num", 1);
        // 第一个参数是给谁添加 添加什么 添加的初始值
        //专门用来向一个对象添加一个新的属性 确保这个属性是响应式的
        state.shopcar.push(i);
      }

      // state.shopcar.push(i);
    },
    //购物车添加效果 去重添加
    change() {},
    removeall(state, result) {
      state.shopcar = state.shopcar.filter((item) => {
        return result.includes(item) == false;
        //如果这个商品不在result里 证明他是不删的
      });
      //把筛选出来的不删的数据重新赋值给shopcar
    },
    del(state, index) {
      state.shopcar.splice(index, 1);
    },
  },
  getters: {
    // sum(state) {
    //   let num = 0;
    //   state.shopcar.forEach((item) => {
    //     num += item.num * item.price;
    //   });
    //   return num;
    // },
  },
  actions: {},
  modules: {},
  plugins: [
    new vuexPersist({
      storage: window.localStorage,
    }).plugin,
  ],
  //插件 配置持久化插件
});
